# -*- coding:utf8 -*-
# 崔烁豪
# 时间：2021-05-17 20:40

# 原子
#   常见原子类型：
#       普通字符
#       非打印字符
#       通用字符
#           \d：0到9的数字
#           \D：除0到9的数字以外的字符
#           \w：字母数字下划线
#           \W：除字母数字下划线以外的字符
#           \s：空白字符
#           \S：除空白字符以外的字符
#       原子表
#           [abc]：包含abc其中的一个就行
#           [^abc]：abc都不能包含。^表示非

# re库是系统自带的。作用是正则表达
import re


def reType1():
    string = "nihaodajiahao"
    # 普通字符作为原子的情况
    pat = "da"
    rst = re.search(pat, string)
    print(rst)

def reType2():
    string = '''nihaoda
    jiahao'''
    # 非打印字符作为原子的情况
    pat = "\n"
    rst = re.search(pat, string)
    print(rst)

def reType3():
    # https://www.cnblogs.com/xiongwei89/archive/2013/04/01/2993669.html
    string = "nihaoda58jiahao"
    # 通用字符作为原子的情况：用一个字符代表一类字符
    # pat = "\d\D"
    pat = "\D\d"
    rst = re.search(pat, string)
    print(rst)

def reType4():
    # https://www.cnblogs.com/xiongwei89/archive/2013/04/01/2993669.html
    string = "nihaoda58jiahao"
    # 原子表作为原子的情况：有一个符合就行，相当于模糊查询
    pat = "[^aidn]"
    rst = re.search(pat, string)
    print(rst)

if __name__ == '__main__':
    reType1()
    reType2()
    reType3()
    reType4()
